package com.wetao.module_user.contract;



import com.wetao.lib_common.base.BaseListResponse;
import com.wetao.lib_common.base.BasePresenter;
import com.wetao.lib_common.base.BaseResponse;
import com.wetao.lib_common.base.BaseViewImp;
import com.wetao.lib_common.bean.response.AppVersionInfo;
import com.wetao.lib_common.bean.response.AreaSchoolInfo;
import com.wetao.lib_common.bean.response.CheckCodeInfo;
import com.wetao.lib_common.bean.response.Loginbean;
import com.wetao.lib_common.bean.response.Loginbean_CoachClass;
import com.wetao.lib_common.bean.response.SchoolClassAdminInfo;
import com.wetao.lib_common.bean.response.SchoolClassInfo;
import com.wetao.lib_common.bean.response.SchoolGradeInfo;

import java.util.HashMap;

/**
 * LoginContract
 */
public interface UserActivityContract {

    //方法命名以 请求方法+Result  命名
    interface View extends BaseViewImp {

        void getAreaInfoResult(BaseListResponse<AreaSchoolInfo> data);
        void getAreaInfoError();

        void getCheckCodeResult(BaseResponse data);
        void getCheckCodeError();

        void getModifyPhoneResult(BaseResponse<Loginbean> data);
        void getModifyPhoneError();

        void getModifyPwdResult(BaseResponse data);
        void getModifyPwdError();

        void getSectionGradeResult(BaseListResponse<SchoolGradeInfo> data);
        void getSectionGradeError();

        void getClassAdminUpdateResult(BaseResponse<Loginbean> data);
        void getClassAdminUpdatError();

        void getClassCoachJoinResult(BaseListResponse<Loginbean_CoachClass> data);
        void getClassCoachJoinError();

        void getClassCoachUpdateResult(BaseListResponse<Loginbean_CoachClass> data);
        void getClassCoachUpdateError();

        void getClassCoachExitResult(BaseListResponse<Loginbean_CoachClass> data);
        void getClassCoachExitError();

        void getChoiceClassResult(BaseListResponse<SchoolClassInfo> data);
        void getChoiceClassError();

        void getAdminClassListResult(BaseListResponse<SchoolClassInfo> data);
        void getAdminClassListError();

        void getClientVersionResult(BaseResponse<AppVersionInfo> data);
        void getClientVersionError();

    }

    //方法命名以 get+方法  命名
    abstract class Presenter extends BasePresenter<View> {

        public abstract void getAreaInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getCheckCodeInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getModifyPhoneInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getModifyPwdInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getSectionGradeInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getClassAdminUpdateInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getClassCoachJoiInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getClassCoachUpdateInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getClassCoachExitInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getChoiceClassInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getAdminClassListInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);
        public abstract void getClientVersionInfo(HashMap<String, Object> map, boolean isDialog, boolean cancelable);

    }
}
